#pragma once

class IMob
{
public:
	IMob(const glm::vec3& position, float maxHealth, float speed);
	virtual ~IMob();

	void SetHealth(float h);
	float GetHealth() const;

	void Damage(float dmg);
	void Kill();
	void Respawn();

	void CalculateAI();

	float GetSpeed() const;
	void SetSpeed(float f);

	const glm::vec3& GetPosition() const;
	void SetPosition(const glm::vec3& pos);

	void LookAt(float p);

private:
	float m_health;
	float m_maxHealth;
	float m_speed;

	PointLight m_aura;
	MeshInstance* m_mesh;
};

